let secret_code = '' // 全局变量

Page({
  data: {
    mobile: '', // 手机号
    code: '',
    countDownVisible: false, // 倒计时是否显示
    backTo: '', // 回跳地址
  },

  onLoad({ backTo }) {
    // console.log(params.backTo)
    this.setData({ backTo })
  },

  countDownChange(ev) {
    // 时间变化后就会触发!!!
    // console.log(ev)
    this.setData({
      timeData: ev.detail, // 更新当前倒计时 最新剩余时间
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },

  validMobile() {
    const reg = /^1[3-9]\d{9}$/
    const flag = reg.test(this.data.mobile.trim())

    return flag
  },

  validCode() {
    const reg = /^\d{6}$/
    const flag = reg.test(this.data.code.trim())

    return flag
  },

  async getCode() {
    // 重要的是  调用后端接口 给手机发送短信!!!
    // 1. 获取输入的手机号(双向数据绑定)
    // 2. 手机号校验(封装)
    if (!this.validMobile()) return wx.utils.toast('手机号有问题啊')

    // 3. 发送请求 调用接口
    // 特殊: 没有购买短信发送服务!!! 验证码会临时的通过响应给你!!!
    console.log('发请求啦')
    const { code, data } = await wx.http.get('/code', { mobile: this.data.mobile.trim() })

    if (code !== 10000) return wx.utils.toast()
    // console.log(data)
    // this.setData
    secret_code = data.code // 保存验证码

    wx.utils.toast('短信发送成功,请查收短信')

    // 顺带着 展示倒计时
    this.setData({ countDownVisible: true })
  },

  copyCode() {
    wx.setClipboardData({ data: secret_code }) // 设置 剪贴板的内容  实现 快速粘贴的效果
  },

  async submitForm() {
    // 调用接口 完成登录(注册)
    // 1. 收集到手机号 验证码
    // 2. 校验手机号 验证码
    if (!this.validMobile()) return wx.utils.toast('手机号有问题啊')
    if (!this.validCode()) return wx.utils.toast('验证码有问题啊')

    // 3. 发请求啦
    // console.log('发请求啦')
    const { code, data } = await wx.http.post('/login', {
      mobile: this.data.mobile.trim(),
      code: this.data.code.trim(),
    })

    if (code !== 10000) return wx.utils.toast()
    // console.log(data)

    // 存token(封装到全局)  本地+app
    getApp().setToken(data.token, data.refreshToken)

    // 跳转回原来要去的页面
    wx.redirectTo({
      url: this.data.backTo,
    })
  },
})
